from pydantic import BaseModel
from typing import Optional
from .models import SongStatus

# 用于创建歌曲的Pydantic模型（例如，来自API请求）
class SongCreate(BaseModel):
    title: str
    artist: Optional[str] = None
    source_url: str

# 用于读取歌曲数据的Pydantic模型（例如，在API响应中）
# 此模型将用于将SQLAlchemy对象转换为JSON。
class Song(BaseModel):
    id: int
    title: str
    artist: Optional[str] = None
    source_url: str
    file_path: Optional[str] = None
    status: SongStatus

    class Config:
        from_attributes = True # 在Pydantic v2中从 orm_mode = True 更改而来 